Einlesen lokaler Datendateien
Humboldt-Universität zu Berlin
Mi. den 29.11.2023
Pflichtlektüre: Kap. 8 (Datenimport) in Wickham et al. (2023)
Ergänzende Lektüre: Kap. 4 (Datenimport) in Nordmann & DeBruine (2022)
Bis jetzt haben wir gelernt, wie man…
dplyr-Verben zu verarbeitenHeute werden wir lernen, wie man:
.csv) erstellen und speichernreadr importierenpacman
pacman anstelle von install.packages() und library zu benutzen
p_load() nimmt Paketnamen als Argumentelibrary())install.packages() + library())tidyverse geladen und die neuen Pakete janitor und here installiert und geladen
?janitor und ?here in der Konsole ein.daten-Ordnerdaten hinzu (der genau gleich geschrieben ist).RProjects
Es gibt viele verschiedene Dateitypen, die Daten annehmen können, z. B. .xlsx, .txt, .csv, .tsv.
csv” ist der typischste Dateityp und steht für: Comma Separated Values.
So sieht eine einfache CSV-Datei aus, wenn man sie als Rohtext betrachtet
Student ID,Full Name,favourite.food,mealPlan,AGE
1,Sunil Huffmann,Strawberry yoghurt,Lunch only,4
2,Barclay Lynn,French fries,Lunch only,5
3,Jayendra Lyne,N/A,Breakfast and lunch,7
4,Leon Rossini,Anchovies,Lunch only,
5,Chidiegwu Dunkel,Pizza,Breakfast and lunch,five
6,Güvenç Attila,Ice cream,Lunch only,6
Abbildung 1: Source: Wickham et al. (2023) (all rights reserved)
Abbildung 2: Klicken Sie hier zum Hinzufügen und Herunterladen der Tabelle
groesse_geburtstag.csv auf Ihrem Computer, direkt in einem Ordner namens daten in unserem ProjektverzeichnisAufgabe 1: Saving a CSV
Beispiel 1
daten in Ihrem Projektordner (falls Sie das nicht schon getan haben).daten Ordner als groesse_geburtstag.csv.daten-Ordner und überprüfen Sie, ob die CSV-Datei dort ist.readr
müssen wir nun die Daten einlesen
wir müssen eine Funktion verwenden, die CSV-Daten liest, und angeben, wo sich die Daten in unserem RProject-Ordner befinden
Das readr-Paket (Teil von tidyverse) kann die meisten Datentypen einlesen und hat mehrere Funktionen für verschiedene Datentypen
| Haustier | Größe | Monat der Geburt | Tag | L1 |
|---|---|---|---|---|
| Lola | 171 | 5 | 7 | Englisch |
| NA | 168 | 11 | 26 | Deutsch |
| N/A | 182 | 4 | 15 | Deutsch |
Aufgabe 2: readr
Beispiel 2
df_groesse.
df_ ist die Abkürzung für DataFrame; es ist eine gute Idee, ein Präfix vor Objektnamen zu verwenden, damit wir wissen, was jedes Objekt enthältread_csv werden einige Informationen in der Konsole ausgegeben. Was wird gedruckt?summary() oder head()
here
daten zu finden ist?here() verschachtelnhere() startet, führen Sie here() aus[1] "/Users/danielapalleschi/Documents/IdSL/Teaching/WiSe2324/B.A./r4ling"
here packageImage source: Allison Horst (all rights reserved)
NA oder N/A Werte bemerkt
N/A wurde als Text in einer unserer Beobachtungen geschrieben, und so liest R es als solchesNA in R bezieht sich auf fehlende Daten (“Nicht verfügbar”)N/A in unseren df_groesse-Daten nicht wirklich als fehlender Wert gelesen wird.na = für die Funktion read_csv() verwenden, das der Funktion read_csv() mitteilt, welche Werte sie mit fehlenden Werten gleichsetzen soll# A tibble: 3 × 5
Haustier Größe `Monat der Geburt` Tag L1
<chr> <dbl> <dbl> <dbl> <chr>
1 "Lola" 171 5 7 Englisch
2 "" 168 11 26 Deutsch
3 <NA> 182 4 15 Deutsch
"" war, wird als NA gelesenread_csv() leere Zellen als NA liest
read_csv() anweisen, mehr als eine Art von Eingabe als NA zu lesen, d.h. wir wollen es anweisen, "" und "N/A" als NA zu lesenc()
`Monat der Geburt)
clean_names() aus dem Paket janitor, das wir bereits geladen haben# A tibble: 3 × 5
haustier grosse monat_der_geburt tag l1
<chr> <dbl> <dbl> <dbl> <chr>
1 Lola 171 5 7 Englisch
2 <NA> 168 11 26 Deutsch
3 <NA> 182 4 15 Deutsch
head(df_groesse) ausführen, sehen Sie dann die bereinigten Spaltennamen?<- zuweisen.There are currently 2 pipes that can be used in R.
magrittr package pipe: %>%
|>
Cmd/Ctrl + Shift/Strg + M to produce a pipeAufgabe 3: pipes
Beispiel 3
groesse_geburtstag.csv erneut mit festen NAs und dann
clean_names() für den Datensatz aufzurufen, und dann
groesse_geburtstag.csv erneut mit festen NAs, speichern Sie ihn als Objekt df_groesse, und dann
clean_names() auf den Datensatz anzuwenden.numerische Daten
as_factor()$ verwenden, um eine Spalte in einem Datenrahmen zu indizieren:tidyverse und die Funktion mutate() verwendenreadr hat weitere Funktionen, die ebenfalls einfach zu benutzen sind, man muss nur wissen, wann man welche benutzt
read_csv2() liest Semikolon-getrennte csv-Dateien (;)
, als Dezimaltrennzeichen verwenden (wie Deutschland)read_tsv() liest Tabulator-getrennte Dateien
Die Funktion read_delim() liest Dateien mit beliebigen Trennzeichen ein.
delim = an (z.B. read_delim(groesse_geburtstag.csv, delim = ","))Heute haben wir gelernt, wie man…
readr importiert ✅Lassen Sie uns nun dieses neue Wissen anwenden.
Wir wollen nun üben, das Paket readr zu verwenden und unsere Daten zu verarbeiten.
readr Funktionen| getrennt sind?read_csv() und read_tsv() gemeinsam?;) als Trennzeichen einzulesen?Laden Sie die Datei groesse_geburtstag.csv erneut. Benutzen Sie Pipes, um auch die Funktion clean_names zu benutzen und um die folgenden Änderungen im Objekt df_groesse vorzunehmen:
l1 in einen Faktor.grosse in groesse
monat_der_geburt in geburtsmonat
df_groesse ein Streudiagramm, das die Beziehung zwischen unserem Geburtsdatum und unseren Geburtstagen veranschaulicht (es macht keinen Sinn, dies zu vergleichen, aber das ist nur eine Übung). Legen Sie die Farbe und die Form so fest, dass sie “L1” entsprechen. Fügen Sie einen Plot-Titel hinzu.l1 zeigt.Hergestellt mit R version 4.3.0 (2023-04-21) (Already Tomorrow) und RStudioversion 2023.9.0.463 (Desert Sunflower).
R version 4.3.0 (2023-04-21)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Ventura 13.2.1
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.11.0
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] magick_2.7.4 here_1.0.1 janitor_2.2.0 lubridate_1.9.2
[5] forcats_1.0.0 stringr_1.5.0 dplyr_1.1.3 purrr_1.0.2
[9] readr_2.1.4 tidyr_1.3.0 tibble_3.2.1 ggplot2_3.4.3
[13] tidyverse_2.0.0
loaded via a namespace (and not attached):
[1] utf8_1.2.3 generics_0.1.3 stringi_1.7.12 hms_1.1.3
[5] digest_0.6.33 magrittr_2.0.3 evaluate_0.21 grid_4.3.0
[9] timechange_0.2.0 fastmap_1.1.1 rprojroot_2.0.3 jsonlite_1.8.7
[13] fansi_1.0.4 scales_1.2.1 cli_3.6.1 rlang_1.1.1
[17] crayon_1.5.2 bit64_4.0.5 munsell_0.5.0 withr_2.5.0
[21] yaml_2.3.7 tools_4.3.0 parallel_4.3.0 tzdb_0.4.0
[25] colorspace_2.1-0 pacman_0.5.1 vctrs_0.6.3 R6_2.5.1
[29] lifecycle_1.0.3 snakecase_0.11.0 bit_4.0.5 vroom_1.6.3
[33] pkgconfig_2.0.3 pillar_1.9.0 gtable_0.3.4 Rcpp_1.0.11
[37] glue_1.6.2 xfun_0.39 tidyselect_1.2.0 rstudioapi_0.14
[41] knitr_1.44 htmltools_0.5.5 rmarkdown_2.22 compiler_4.3.0
Woche 7 - Datenimport